home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 February / Macworld (1999-02).dmg / Games World / SharewareGames / Xconq 7.2.2 / lib / ww2-div-eur.g < prev    next >
Text File  |  1998-05-22  |  11KB  |  460 lines

  1. (game-module "ww2-div-eur"
  2.   (title "WWII, Division-level, Europe")
  3.   (blurb "base module for division-level WWII in Europe")
  4.   (variants
  5.    (world-seen true)
  6.    (see-all true)
  7.    ("Keep Score" keep-score (true (scorekeeper (do last-side-wins))))
  8.    )
  9.   )
  10.  
  11. (unit-type a-inf (name "infantry(a)") (image-name "inf-div")
  12.   (help "Allied infantry division"))
  13. (unit-type a-armor (name "armor(a)") (image-name "armor-div")
  14.   (help "Allied armored division"))
  15. (unit-type a-para (name "paratroops(a)") (image-name "para-div")
  16.   (help "Allied paratroop division"))
  17.  
  18. (define a-ground-types (a-inf a-armor a-para))
  19.  
  20. (add a-ground-types possible-sides "allies")
  21.  
  22. (add a-ground-types acp-per-turn (3 6 3))
  23.  
  24. (unit-type g-inf (name "infantry(g)") (image-name "inf-div")
  25.   (help "German infantry division"))
  26. (unit-type g-armor (name "armor(g)") (image-name "armor-div")
  27.   (help "German Panzer division"))
  28. (unit-type g-para (name "paratroops(g)") (image-name "para-div")
  29.   (help "German paratroop division"))
  30. (unit-type pzgren (name "panzergrenadiers") (image-name "pzgren-div")
  31.   (help "German panzergrenadier division"))
  32. (unit-type metro (image-name "metro-div") (image-name "inf-div")
  33.   (help "German metropolitan defense division"))
  34. (unit-type cd (image-name "cd-div") (image-name "inf-div")
  35.   (help "German coastal defense division"))
  36.  
  37. (define g-ground-types (g-inf g-armor g-para pzgren metro cd))
  38.  
  39. (add g-ground-types possible-sides "axis")
  40.  
  41. (add g-ground-types acp-per-turn (3 5 3 3 3 2))
  42.  
  43. (unit-type hq (image-name "army-hq")
  44.   (help "Army HQ, one needed for every 16 divisions"))
  45.  
  46. (add hq acp-per-turn 6)
  47.  
  48. (define ground-types (append a-ground-types g-ground-types hq))
  49.  
  50. (define non-mot-types (a-inf g-inf))
  51.  
  52. (define mot-types (a-armor g-armor))
  53.  
  54. (unit-type train
  55.   (help "rail transport"))
  56.  
  57. ;; should have assault craft distinct from transports.
  58. (unit-type transport (image-name "ap")
  59.   )
  60. (unit-type battleship (image-name "bb")
  61.   )
  62.  
  63. (define ship-types (transport battleship))
  64.  
  65. (unit-type bomber (image-name "4e")
  66.   )
  67.  
  68. (unit-type airbase
  69.   )
  70. (unit-type v2-base (image-name "v2")
  71.   (help "V-2 rocket base"))
  72. (unit-type port (image-name "anchor")
  73.   )
  74. (unit-type coast-defense (image-name "walltown")
  75.   )
  76. (unit-type town (image-name "town20")
  77.   )
  78.  
  79. (define place-types (airbase v2-base port coast-defense town))
  80.  
  81. (material-type org
  82.   (help "organization - important to do things, acquired from HQs"))
  83. (material-type missile
  84.   (help "what the V-2 bases shoot with"))
  85.  
  86. ; sea clr brkn/bocage rough/hills mtn urb estuary road rail river rhine
  87.  
  88. (terrain-type sea (char ".")
  89.   (help "the high seas, and coastal waters"))
  90. (terrain-type swamp (char "=")
  91.   (help "soggy and overgrown terrain, difficult for vehicles"))
  92. (terrain-type clear (image-name "plains") (char "+")
  93.   )
  94. (terrain-type broken (image-name "bocage") (char "%")
  95.   )
  96. (terrain-type hills (image-name "forest") (char "^")
  97.   )
  98. (terrain-type mountains (char "/")
  99.   )
  100. (terrain-type urban (char "#")
  101.   )
  102. (terrain-type estuary (image-name "shallows")
  103.   )
  104. (terrain-type road
  105.   (subtype connection) (subtype-x road-x)
  106.   )
  107. (terrain-type railroad (image-name "black")
  108.   (subtype connection) (subtype-x road-x)
  109.   )
  110. (terrain-type river
  111.   (subtype border) (subtype-x river-x)
  112.   )
  113. (terrain-type Rhine-river (image-name "river")
  114.   (subtype border)
  115.   )
  116.  
  117. (define water-t* (sea estuary))
  118.  
  119. (define land-t* (swamp clear broken hills mountains urban))
  120.  
  121. (define cell-t* (sea swamp clear broken hills mountains urban estuary))
  122.  
  123. (add water-t* liquid true)
  124.  
  125. ;;; Static relationships.
  126.  
  127. (table vanishes-on
  128.   (ground-types water-t* true)
  129.   (ship-types land-t* true)
  130.   (place-types water-t* true)
  131.   )
  132.  
  133. ;; Unit-in-terrain capacities.
  134.  
  135. (add t* capacity 3)
  136.  
  137. ;; Unit-in-unit capacities.
  138.  
  139. (table unit-size-as-occupant
  140.   (u* u* 99)
  141.   (ground-types (transport town) 1)
  142.   (ground-types train 1)
  143.   (train town 1)
  144.   )
  145.  
  146. (add transport capacity 4)
  147. (add train capacity 1)
  148. (add town capacity 6)
  149.  
  150. (table unit-capacity-x
  151.   (port ship-types (6 2))
  152.   (airbase bomber 2)
  153.   )
  154.  
  155. (table unit-storage-x
  156.   (ground-types org 4)
  157.   (hq org 20)
  158.   (v2-base missile 50)
  159.   )
  160.  
  161. ;;; Vision.
  162.  
  163. ;;; Static units can't do anything without the world's reporters finding
  164. ;;; out within the week - except for V-2 bases.
  165.  
  166. (add place-types see-always true)
  167. (add v2-base see-always false)
  168.  
  169. ;;; Actions.
  170.  
  171. ;; (ground-types acp already defined)
  172. (add ship-types acp-per-turn 14) ; 28 would be better
  173. (add train acp-per-turn 28)
  174. (add bomber acp-per-turn 7)
  175. (add place-types acp-per-turn 0)
  176. (add v2-base acp-per-turn 7) ; for missile attacks
  177.  
  178. (table material-to-act
  179.   (ground-types org 1)
  180.   )
  181.  
  182. ;;; Movement.
  183.  
  184. (add ship-types speed 70.00)
  185. (add place-types speed 0)
  186. (add bomber speed 0)
  187.  
  188. (table mp-to-enter-terrain
  189.   (mot-types hills 2)
  190.   (ground-types mountains 2)
  191.   (mot-types mountains 4)
  192.   (hq mountains 1)
  193.   (ground-types river 2)
  194.   (ground-types Rhine-river 3)
  195.   (ground-types water-t* 9999)
  196.   ;; Trains can only move on railroads.
  197.   (train t* 9999)
  198.   (train railroad 1)
  199.   (ship-types land-t* 9999)
  200.   )
  201.  
  202. (table mp-to-leave-terrain
  203.   ;; Trains can only move on railroads.
  204.   (train t* 9999)
  205.   (train railroad 0)
  206.   )
  207.  
  208. ;; Zones of control.
  209.  
  210. (table zoc-range
  211.   ;; Ground units can constrain the movement of adjacent ground units.
  212.   (ground-types ground-types 1)
  213.   ;; Except for HQs, which are wimpy combatwise.
  214.   (hq u* 0)
  215.   ;; Ground types can also control estuaries.
  216.   (ground-types ship-types 1)
  217.   )
  218.  
  219. (table zoc-into-terrain
  220.   (ground-types t* false)
  221.   (ground-types land-t* true)
  222.   (ground-types estuary true)
  223.   )
  224.  
  225. (table mp-to-enter-zoc
  226.   (ground-types ground-types 7)
  227.   (ship-types ground-types 980)
  228.   )
  229.  
  230. (table mp-to-traverse-zoc
  231.   (ship-types ground-types 980)
  232.   )
  233.  
  234. (table mp-to-leave-zoc
  235.   (ship-types ground-types 980)
  236.   )
  237.  
  238. ;;; Repair.
  239.  
  240. (add u* hp-recovery 0.50)
  241.  
  242. ;;; (should have towns repair units also, but would need to be able to act then!)
  243. ;;; (could say nonzero acp-to-xxx with zero acp-max means auto-actions)
  244.  
  245. ;;; Combat.
  246.  
  247. (add ground-types hp-max 12)
  248. (add ship-types hp-max 24)
  249. (add bomber hp-max 12)
  250. (add place-types hp-max 48)
  251.  
  252. (table acp-to-attack
  253.   (u* u* 1)
  254.   ;; Metro divisions are purely defensive.
  255.   (metro u* 0)
  256.   ;; Transportation types can't actually attack anything.
  257.   (transport u* 0)
  258.   (train u* 0)
  259.   ;; V-2 bases can only fire missiles.
  260.   (v2-base u* 0)
  261.   )
  262.  
  263. (table hit-chance
  264.   (u* u* 50)
  265.   (a-inf u* 60)
  266.   (a-armor u* 40)
  267.   (a-para u* 50)
  268.   (g-inf u* 40)
  269.   (g-armor u* 40)
  270.   (g-para u* 70)
  271.   (pzgren u* 60)
  272.   (cd u* 30)
  273.   ;; HQs are not for combat.
  274.   (hq u* 0)
  275.   ;; Transport combat is non-existent at this scale.
  276.   (u* transport 0)
  277.   (transport u* 0)
  278.   ;; Battleships are very good at shelling everything.
  279.   (battleship u* 90)
  280.   ;; ...but not so good with each other.
  281.   (battleship battleship 50)
  282.   ;; Might accidentally destroy what we're trying to capture.
  283.   (u* train 10)
  284.   ;; Bombers can't hit V-2 bases, they're too small and mobile.
  285.   (bomber v2-base 0)
  286.   ;; V-2 bases can only hit stationary targets.
  287.   (v2-base u* 0)
  288.   (v2-base place-types 50)
  289.   )
  290.  
  291. (table damage
  292.   (u* u* 2d4)
  293.   (hq u* 0)
  294.   (u* transport 0)
  295.   (transport u* 0)
  296.   (u* train 1)
  297.   ;; V-2 bases can only hit stationary targets.
  298.   (v2-base u* 0)
  299.   (v2-base place-types 2d4)
  300.   )
  301.  
  302. (table hp-min
  303.   ;; Towns can never be totally destroyed.
  304.   (u* town 1)
  305.   ;; Bombers are not capable of destroying ground units.
  306.   (bomber ground-types 6)
  307.   )
  308.  
  309. (table withdraw-chance-per-attack
  310.   ;; HQs are supposed to preserve themselves.
  311.   (u* hq 90)
  312.   )
  313.  
  314. ;; Battleships can reach inland a little ways.
  315.  
  316. (add battleship acp-to-fire 1)
  317. (add battleship range 2)
  318.  
  319. ;; Aircraft give towns and bases a long reach.
  320.  
  321. (add bomber acp-to-fire 1)
  322.  
  323. (add v2-base acp-to-fire 1)
  324.  
  325. ;; Bombers can reach pretty much everywhere.
  326.  
  327. (add bomber range 60)
  328.  
  329. ;; Nominally, the V-2's range was 200 miles, but be generous.
  330.  
  331. (add v2-base range 24)
  332.  
  333. (table consumption-per-attack
  334.   (v2-base missile 1)
  335.   )
  336.  
  337. (table hit-by
  338.   (u* missile 1)
  339.   )
  340.  
  341. (table capture-chance
  342.   ;; Trains are easily captured, but might be able to escape sometimes.
  343.   (ground-types train 80)
  344.   ;; Towns don't usually have much integral defense.
  345.   (ground-types place-types 90)
  346.   )
  347.  
  348. ;; (units in towns and trains should be able to help defend)
  349.  
  350. ;;; Backdrop.
  351.  
  352. (table base-production
  353.   (hq org 16)
  354.   (v2-base missile 2)
  355.   )
  356.  
  357. (table base-consumption
  358.   (ground-types org 1)
  359.   ;; HQ is automatically organized.
  360.   (hq org 0)
  361.   )
  362.  
  363. (table out-length
  364.   (hq org 10)
  365.   )
  366.  
  367. (table in-length
  368.   (ground-types org 10)
  369.   )
  370.  
  371. ;;; Definitions used for testing.
  372.  
  373. ;;; Some defns for the fractal percentile generator.
  374.  
  375. (set alt-blob-density 10000)
  376. (set alt-blob-size 20)
  377. (set alt-smoothing 6)
  378. (set wet-blob-density 2000)
  379. (set wet-blob-size 100)
  380.  
  381. ; sea low clr brkn rough mtn urb
  382.  
  383. (add cell-t* alt-percentile-min (  0  30  30  30  70  90  30   0))
  384. (add cell-t* alt-percentile-max ( 30  35  70  70  90 100  70   0))
  385. (add cell-t* wet-percentile-min (  0  50   0  50   0   0  45   0))
  386. (add cell-t* wet-percentile-max (100 100  45 100 100 100  50   0))
  387.  
  388. ;;; River generation.
  389.  
  390. (add (clear hills mountains) river-chance (2.00 2.00 4.00))
  391.  
  392. (set river-sink-terrain sea)
  393.  
  394. ;;; Road generation.
  395.  
  396. (table road-chance
  397.   (town town 100)
  398.   (town (port airbase) 100)
  399.   )
  400.  
  401. (table road-into-chance
  402.   (land-t* land-t* 100)
  403.   )
  404.  
  405. (set country-radius-min 6)
  406.  
  407. (add (sea clear) country-terrain-min (5 5))
  408.  
  409. (add u* start-with 1)  ; one of everything
  410.  
  411. (table favored-terrain
  412.   (u* t* 100)
  413.   (u* (sea swamp) 0)
  414.   (ship-types sea 100)
  415.   (ship-types land-t* 0)
  416.   )
  417.  
  418. (table unit-initial-supply
  419.   ;; Everybody starts out optimistic and efficient.
  420.   (ground-types org 999)
  421.   ;; V-2 bases first became operational 6 Sep 1944, so start them out
  422.   ;; empty.
  423.   (v2-base missile 0)
  424.   )
  425.  
  426. ;;; No political detailing needed at the divisional level.
  427.  
  428. (set side-library '(
  429.   ((name "Allies") (adjective "Allied") (class "allies")
  430.    (emblem-name "white-star"))
  431.   ((name "Axis") (adjective "Axis") (class "axis")
  432.    (emblem-name "german-cross"))
  433.   ))
  434.  
  435. (world 2500 (year-length 52))
  436.  
  437. (set calendar '(usual week))
  438.  
  439. (game-module (design-notes (
  440.   "The map scale is 10 miles/hex, game time is 1 week/turn."
  441.   ""
  442.   "This game design covers division-level operations in Europe during WWII."
  443.   "Players take on the roles of army commanders but not political leaders;"
  444.   "the game does not include political factors."
  445.   )))
  446.  
  447. #|
  448.  
  449. Parachutists have restrictions on initial placement (why?), won't
  450. drop further than 10 hexes from friendlies (even on invasion?)
  451. (use control radius to impl)
  452.  
  453. Can build fortresses (very slowly), units can be inside or outside.
  454.  
  455. Admin movement should also use trucks.
  456.  
  457. All units have medium prob to surrender - use ZOC to calculate.
  458.  
  459. |#
  460.